package org.summer.lawyer.domain.vo.brokerageuser;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.lawyer.domain.BrokerageUser;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 分销员视图对象 brokerage_user
 *
 * @author summer
 * @date 2024-06-20
 */
@Schema(title ="分销员视图对象 brokerage_user", description = "分销员视图对象 brokerage_user")
@Data
@AutoMapper(target = BrokerageUser.class)
public class BrokerageUserVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "brokerageUserId", type = "Long", description = "主键ID")
    private Long brokerageUserId;

    /**
     * 微信用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "微信用户ID")
    private Long wxUserId;

    /**
     * 用户昵称
     */
    @Schema(title = "nickname", type = "String", description = "用户昵称")
    private String nickname;

    /**
     * 头像
     */
    @Schema(title = "avatar", type = "String", description = "头像")
    private String avatar;

    /**
     * 邀请码
     */
    @Schema(title = "brokerageCode", type = "String", description = "邀请码")
    private String brokerageCode;

    /**
     * 推广资格(0停用，1启用）
     */
    @Schema(title = "status", type = "String", description = "推广资格(0停用，1启用）")
    private String status;

    /**
     * 推广人数（总人数）
     */
    @Schema(title = "userCount", type = "Integer", description = "推广人数（总人数）")
    private Integer userCount;

    /**
     * 30天新增人数
     */
    @Schema(title = "newUserCount", type = "Integer", description = "30天新增人数")
    private Integer newUserCount;

    /**
     * 推广订单数量（总数量）
     */
    @Schema(title = "orderCount", type = "Integer", description = "推广订单数量（总数量）")
    private Integer orderCount;

    /**
     * 推广订单金额，单位分
     */
    @Schema(title = "orderAmount", type = "Long", description = "推广订单金额，单位分")
    private Long orderAmount;

    /**
     * 已提现金额，单位分
     */
    @Schema(title = "withdrawAmount", type = "Long", description = "已提现金额，单位分")
    private Long withdrawAmount;

    /**
     * 已提现次数
     */
    @Schema(title = "withdrawCount", type = "Integer", description = "已提现次数")
    private Integer withdrawCount;

    /**
     * 成为推广员时间
     */
    @Schema(title = "brokerageTime", type = "Date", description = "成为推广员时间")
    private Date brokerageTime;

    /**
     * 上级推广员ID
     */
    @Schema(title = "bindUserId", type = "Long", description = "上级推广员ID")
    private Long bindUserId;

    /**
     * 上级推广员姓名
     */
    @Schema(title = "bindUserName", type = "String", description = "上级推广员姓名")
    private String bindUserName;

    /**
     * 推广员绑定时间
     */
    @Schema(title = "bindUserTime", type = "Date", description = "推广员绑定时间")
    private Date bindUserTime;


    /**
     * 手机号码
     */
    @Schema(title = "phoneNumber", type = "String", description = "手机号码")
    private String phoneNumber;

    /**
     *  钱包可用余额
     */
    @Schema(title = "balanceFee", type = "Long", description = "钱包可用余额")
    private Long balanceFee;

    /**
     *  钱包总收入
     */
    @Schema(title = "walletIncome", type = "Long", description = "钱包总收入")
    private Long walletIncome;

    /**
     *  钱包总支出（提现）
     */
    @Schema(title = "walletExpense", type = "Long", description = "钱包总支出（提现）")
    private Long walletExpense;

    /**
     *  钱包冻结金额
     */
    @Schema(title = "frozenAmount", type = "Long", description = "钱包冻结金额")
    private Long frozenAmount;

    /**
     *  今日入账
     */
    @Schema(title = "todayAmount", type = "Long", description = "今日入账")
    private Long todayAmount;

    /**
     * 分享码图片
     */
    @Schema(title = "qrImage", type = "String", description = "分享码图片")
    private String qrImage;

}
